A symbology-reading input device typically uses a sensing beam to read a symbology, such as a bar code, which consists of alternating areas ("bars") having differing characteristics to which the beam is sensitive. The bar code, or other symbology, can be used to store information or commands which are addressed to other devices. After sensing the symbology, the input device then receives and interprets the fluctuations in the returning sensing beam that are caused by the symbology. For example, it is known in the prior art to read symbology by means of a hand-held wand which makes contact with the surface on which the symbology is printed and reads the symbology by means of a beam of light. It is also known to use a non-contact scanning device to cause a beam of light to scan across an area containing a bar code.
Such input devices typically transform the reflected scanning beam to an electronic data form for decoding. In one prior art system, the electronic data form is then input to the system wherein a symbology-reading input device driver decodes the electronic data form into a form recognizable by a bar code-reading application program operating on the system.
In another prior art system, the electronic data form is decoded into ASCII characters and transferred across an RS232-type asynchronous serial interface to a serial communication port buffer of the system, and then passed to a bar code-reading application program operating on the system.
Although some computer programs are written to accept bar code data, most computer programs are designed to receive data typed by a user at a computer keyboard. These programs are called non-reader application programs because they are not designed to read bar code data. The problem with most computer programs being designed to receive data typed by a user at a computer keyboard is that many people are not proficient at typing. They shun using computers because it is burdensome to enter data. These people, however, would use a computer if the computer program would accept bar code data entry. Also, there are many situations where the use of a keyboard is impractical and error-prone, and where the use of bar code data entry would be practical and virtually error-free.
Some bar code-reading input devices can be attached to special hardware that causes the bar code input to emulate keyboard input. When connected to a computer system, such bar code-reading input devices and speciality hardware enable a user to scan symbols that represent standard characters or commonly used words to input the characters or words into the computer system. Only reader application programs, i.e., programs specially customized to accept bar code data, can accept bar code data without requiring the bar code signals to be transferred to keyboard input.
Another problem with connecting such bar code-reading input devices and speciality hardware to a computer system is that the devices only permit one-way communication with a reader application program running on the computer system. The bar code-reading input device sends information to the reader applications; the reader application program cannot send information back to the bar code-reading input device. It follows that the reader application program cannot reconfigure the way in which the bar code input is decoded or reconfigure the bar code reader to read a different type of bar code.